/*
求gcd(n,1)+gcd(n,2)+...+gcd(n,n) (求和符号不能用) 其中1<=n<=10^5。（到10^6应该都可以）
输入若干实例，每个实例是一行，表示n。
每个实例输出一行。（会超过2^32的范围吗？）
样例
输入：
1
3
输出：
1
5
*/

#include <iostream>
#include <cstring>

using namespace std;

int euler(int n);

const int MAX = 100000 + 1;

int prime[MAX];
bool notPrime[MAX];
int phi[MAX];

int main(void) {

  int n;
  long long sum;
  while(cin >> n)
  {
    sum = 0;
    euler(n);
    for (int d= 1; d <= n; d++)
    {
      if(n%d == 0)
      {
        sum = sum + (n/d)*phi[d];
        //std::cout << d <<"  " <<phi[d]<< '\n';
      }
    }
    std::cout << sum << '\n';
  }

  return 0;
}


int euler(int n)
{
  n = n+10;
  int count = 0;
  memset(notPrime,0,sizeof(notPrime));
  phi[1] = 1;
  for (int i = 2; i < n; i++)
  {
    if(!notPrime[i])
    {
      phi[i] = i-1;
      prime[count++] = i;
    }
    for (int j = 0; j < count && i*prime[j] < n; j++) {
      notPrime[i*prime[j]] = true;
      //phi[i*prime[j]] = 1;
      if(i % prime[j] == 0)
      {
        phi[i*prime[j]] = phi[i] * prime[j];
        break;
      }
      else
      {
        phi[i*prime[j]] = phi[i]*(prime[j]-1);
      }
    }
  }

  // for (int i = 0; i < n; i++) {
  //   std::cout << i <<"  " << phi[i] << '\n';
  // }

  return phi[n-10];
}
